package com.dave.gd.core.common.globalsession;

import javax.servlet.http.Cookie;

public class CookieUtils {
    
    private CookieUtils() {
    }
    
    public static String createSetCookieHeaderValue(Cookie c, boolean isHttpOnly) {
        StringBuilder s = new StringBuilder();
        s = s.append(c.getName()).append("=").append(c.getValue());
        // 返回一个cookie域名(域名指定cookie在哪个域中有效,例如：Domain=.blog.51cto.com)
        if (c.getDomain() != null) {
            s.append(";Domain=").append(c.getDomain());
        }
        // 返回cookie对服务器上哪个url有效
        if (c.getPath() != null) {
            s.append(";Path=").append(c.getPath());
        }
        // 返回一个描述cookie用途的注释,如果没有注释，则返回null
        if (c.getComment() != null) {
            s.append(";Comment=").append(c.getComment());
        }
        // 返回cookie在客户端最大的有效时间,以秒为单位。默认情况下为-1，表示cookie将一直有效直到浏览器关闭
        if (c.getMaxAge() > -1) {
            s.append(";Max-Age=").append(c.getMaxAge());
        }
        // 如果浏览器仅仅安全协议下发送cookie则返回true。浏览器能使用任何协议发送cookie则返回fasle
        if (c.getSecure()) {
            s.append(";Secure");
        }
        if (isHttpOnly) {
            s.append(";HttpOnly");
        }
        return s.toString();
    }
    
}
